It has long been observed that the average operational complexity of a turbo decoder can be significantly less than that indicated by the maximum decoding iterations. That is, error-free decoding is frequently achieved with less than Imax iterations and more iterations are only needed to cover events where the received frames are particularly noisy and the iterative decoding algorithm converges slowly. Therefore, if the correctness of a data block can be detected at the end of each iteration to abort the iterative processor, the average operational complexity can be reduced without any performance penalty. As the numerical results shown in FIG. 1, the reduction in average complexity can be quite substantial. FIG. 1 illustrates a plot of average number of turbo decoding iterations for a given Block Error Rate (BLER). Additive White Gaussian Noise (AWGN) channel results are plotted with solid lines and Rayleigh fading channel results are plotted with dashed lines.
In modern high data rate communications systems such as the of Universal Terrestrial Radio Access (UTRA) and the long term evolution of the UTRA (E-UTRA), large amount of data bits are transmitted at a time in a unit of a transport block (TB). Since it is impractical to implement turbo codecs of large block lengths, it is necessary to divide a large TB into multiple small units called code blocks (CB). This procedure is illustrated in FIG. 2. The individual CBs are then turbo encoded and decoded independently.
While many detection methods for early stopping have been studied, CRC checking with properly chosen length remains the simplest and most reliable approach. Because of the code block segmentation procedure, a more refined design is needed than those present in the prior art.
Since each CB is turbo encoded and decoded independently, it is hence necessary to attach CRC bits to each CB. With these attachments, it becomes possible to check the correctness of a CB after each turbo decoding iteration. If a CB is found to be correct, turbo decoding for the CB can be stopped and the decoder can proceed to process the next CB. On the other hand, if a CB is found to be incorrect, decoding of the rest of the TB can be aborted.
However, the error detection capability of CRC checking is limited by the length of the CRC attachments. In general, the error miss probability of an L-bit CRC is 2-L for large blocks. Since error misses could happen in any of the multiple CBs, the undetected error performance of the TB as a whole increases linearly with the number of CBs. It is hence necessary to introduce a second check on the TB to ensure data integrity. This two-level CRC structure is illustrated in FIG. 3. That is, a TB level CRC is first calculated using generator CRC-24B. The encoded frame is then segmented into multiple CBs. CRC attachment for each CB is then calculated with generator CRC-24A.CRC24A: g(D)=D24+D23+D18+D17+D14+D11+D10+D7+D6+D5+D4+D3+D+1CRC24B: g(D)=D24+D23+D6+D5+D+1
The shortcomings of the two-level CRC method become apparent when one tries to design turbo decoder hardware with early stopping capabilities. For a large TB that is segmented into multiple CBs as shown in FIG. 3, early stopping decision is assisted by CRC checking based on the CRC-24A generator. On the other hand, for a small TB that is not segmented as shown in FIG. 4, early stopping decision is assisted by CRC checking based on the CRC-24B generator.
It is hence necessary to tightly integrate two CRC checking circuits (one supporting CRC-24A and another supporting CRC-24B) into the turbo decoder hardware. Furthermore, additional controlling signals will be needed to modify the behavior of high-speed turbo decoding hardware. Both lead to high implementation and verification costs.
Thus, there is a need for method and arrangement that overcomes many of the disadvantages of known methods in order to provide computational efficiency and reduce hardware complexity.